var OrgCheckSetting = Ext.data.Record.create([
{
	name : 'id',
	mapping : 'id',
	type : 'int'
}, {
	name : 'detailId',
	mapping : 'detailId',
	type : 'int'
}, {
	name : 'orgId',
	mapping : 'orgId',
	type : 'int'
}, {
	name : 'point',
	mapping : 'point',
	type : 'int'
}, {
	name : 'score',
	mapping : 'score',
	type : 'float'
}, {
	name : 'content',
	mapping : 'content',
	type : 'string'
}, {
	name : 'spec',
	mapping : 'content',
	type : 'string'
}, {
	name : 'year',
	mapping : 'year',
	type : 'int'
}, {
	name : 'type',
	mapping : 'type',
	type : 'string'
}, {
	name : 'checkStatus',
	mapping : 'checkStatus',
	type : 'string'
}]);

var sm = new Ext.grid.RowNumberer();
var cm_orgchecksetting = new Ext.grid.ColumnModel([
	new Ext.grid.CheckboxSelectionModel({
				singleSelect : true
			}), {
		id : 'content',
		header : "指标内容",
		width : 100,
		sortable : true,
		dataIndex : 'content'
	}, {
		id : 'point',
		header : "分值",
		width : 100,
		sortable : true,
		dataIndex : 'point'
	}, {
		id : 'spec',
		header : "评分标准",
		width : 100,
		sortable : true,
		dataIndex : 'spec'
	}, {
		id : 'type',
		header : "指标类型",
		width : 80,
//		hidden : true,
		dataIndex : 'type',
		renderer : fun_getGoalType
	}, {
		id : 'checkStatus',
		header : "状态",
		width : 80,
		hidden : true,
		dataIndex : 'checkStatus'
	}]);


var btn_add_goal = new Ext.Button({
			text : '增加',
			iconCls : 'icon-add',
			handler : function() {
				var frm = Ext.getCmp('form_query_orgchecksetting').getForm();
				var year = frm.findField('year').getValue();
				var orgId = frm.findField('orgId').getValue();
				if (Ext.isEmpty(year) || Ext.isEmpty(orgId)) {
					Ext.MessageBox.alert("提示", "请选择输入所有查询条件！");
					return;
				}
				window_query_goaldetail.show();
				window_query_goaldetail.center();
				var frmQuery = window_query_goaldetail.findByType('form')[0].getForm();
				//init data
				frmQuery.findField('yearName').setValue(year + '年');
				frmQuery.findField('year').setValue(year);
				frmQuery.findField('orgName').setValue(frm.findField('orgId').getRawValue());
				frmQuery.findField('orgId').setValue(orgId);
			}
		});

var btn_sync_goalself = new Ext.Button({
	text : '同步自荐指标',
	iconCls : 'icon-add',
	handler : function() {
		var frm = Ext.getCmp('form_query_orgchecksetting').getForm();
		var year = frm.findField('year').getValue();
		var orgId = frm.findField('orgId').getValue();
		if (Ext.isEmpty(year) || Ext.isEmpty(orgId)) {
			Ext.MessageBox.alert("提示", "请选择输入所有查询条件！");
			return;
		} else {
			Ext.Ajax.request({
						url : '/supervise/biz/goalself/syncGoalSelf.action',
						params : {
							id : year,
							orgId : orgId
						},
						success : function() {
							grid_orgchecksetting.render();
							ds_orgchecksetting.load();
						},
						failure : function() {
							Ext.Msg.show({
										title : '错误提示',
										msg : '删除时发生错误!',
										buttons : Ext.Msg.OK,
										icon : Ext.Msg.ERROR
									});
						}
					});
		}
	}
});
var btn_del_orgchecksetting = new Ext.Button({
			text : '删除',
			iconCls : 'icon-del',
			handler : function() {
				var record = grid_orgchecksetting.getSelectionModel().getSelected();
				if (record) {
					if(record.get('checkStatus') != 'new'){
						Ext.Msg.alert('确认删除', '指标设置不是新建，不能删除！');
						return;
					}
					Ext.Msg.confirm('确认删除', '你确定删除该条记录?', function(btn) {
								if (btn == 'yes') {
									Ext.Ajax.request({
												url : '/supervise/biz/orgcheck/deleteOrgCheckSetting.action',
												params : {
													id : record.data.id
												},
												success : function() {
													grid_orgchecksetting.getStore().remove(record);
												},
												failure : function() {
													Ext.Msg.show({
																title : '错误提示',
																msg : '删除时发生错误!',
																buttons : Ext.Msg.OK,
																icon : Ext.Msg.ERROR
															});
												}
											});
								}
							});
				}
			}
		});

var btn_save_orgchecksetting = new Ext.Button({
	text : '保存设置',
	iconCls : 'icon-del',
	handler : function() {
		var count = grid_orgchecksetting.getStore().getCount();
		if(count == 0){
			 Ext.Msg.alert('确认保存设置', '没有记录?');
			 return;
		} 
//		alert(grid_orgchecksetting.getStore().getRange(0,count-1));
		var records = grid_orgchecksetting.getStore().getRange(0,count-1);
		for(var i = 0, count = records.length; i < count; i++){
//			alert(Ext.util.JSON.encode(records[i].get('id')));
		}
//		var record = grid_orgchecksetting.getStore().data;
//		if (record) {
//			Ext.Msg.confirm('确认保存设置', '你确定删除该条记录?', function(btn) {
//						if (btn == 'yes') {
//							Ext.Ajax.request({
//										url : '/supervise/biz/orgcheck/deleteOrgCheck.action',
//										params : {
//											id : record.data.id
//										},
//										success : function() {
//											grid_orgchecksetting.getStore().remove(record);
//										},
//										failure : function() {
//											Ext.Msg.show({
//														title : '错误提示',
//														msg : '删除时发生错误!',
//														buttons : Ext.Msg.OK,
//														icon : Ext.Msg.ERROR
//													});
//										}
//									});
//						}
//					});
//		}
	}
});
var btn_search_orgchecksetting = new Ext.Button({
			text : '查询',
			iconCls : 'icon-search',
			handler : function() {
				grid_orgchecksetting.render();
				ds_orgchecksetting.load();
			}
		});

var ds_orgchecksetting = new Ext.data.Store({
			proxy : new Ext.data.HttpProxy({
						url : '/supervise/biz/orgcheck/findOrgCheckSettingByPage.action'
					}),
			reader : new Ext.data.JsonReader({
						root : 'root',
						totalProperty : 'totalProperty'
					}, [{
								name : 'id',
								type : 'int'
							}, {
								name : 'detailId',
								type : 'int'
							}, {
								name : 'orgId',
								type : 'int'
							}, {
								name : 'point',
								type : 'int'
							}, {
								name : 'score',
								type : 'float'
							}, {
								name : 'content',
								type : 'string'
							}, {
								name : 'spec',
								type : 'string'
							},{
								name : 'year',
								type : 'int'
							}, {
								name : 'type',
								type : 'string'
							}, {
								name : 'checkStatus',
								type : 'string'
							}])
		});

var grid_orgchecksetting = new Ext.grid.GridPanel({
			loadMask : {
				msg : '数据加载中...'
			},
			viewConfig : {
				forceFit : true
			},
			region : 'center',
			cm : cm_orgchecksetting,
			sm : new Ext.grid.RowSelectionModel({
						singleSelect : true
					}),
			store : ds_orgchecksetting,
			autoExpandColumn : 'checkResult',
			// plugins: btn_check_col,
			tbar : [btn_add_goal, '-', btn_del_orgchecksetting , btn_sync_goalself],
			bbar : new Ext.PagingToolbar({
						pageSize : 20,
						store : ds_orgchecksetting,
						displayInfo : false,
						displayMsg : '第 {0} - {1} 条  共 {2} 条',
						refreshText : "刷新",
						emptyMsg : "没有记录"
					}),
			// 检测至少选择一个
			checkOne : function() {
				var selections = this.getSelectionModel().getSelections();
				if (selections.length == 0) {
					Ext.MessageBox.alert("提示", "请选择一条的记录！");
					return false;
				} else if (selections.length != 1) {
					Ext.MessageBox.alert("提示", "不能选择多行！");
					return false;
				}
				return true;
			},

			// 检测必须选择一个
			checkMany : function() {
				var selections = this.getSelectionModel().getSelections();
				if (selections.length == 0) {
					Ext.MessageBox.alert("提示", "请至少选择一条的记录！");
					return false;
				}
				return true;
			},
			listeners : {
				'render' : function(e) {
					// ds_orgchecksetting.load();
				}
			}

		});

var qpanel_orgchecksetting = new Ext.Panel({
			height : 160,
			region : "north",
			baseCls : "x-plain",
			style : "padding:5px",
			layout : "column",
			items : [{
						columnWidth : 0.6,
						layout : "form",
						frame : true,
						baseCls : 'x-plain',
						items : [new Ext.FormPanel({
									id : 'form_query_orgchecksetting',
									labelAlign : 'right',
									border : false,
									baseCls : 'x-plain',
									bodyStyle : 'padding:5px 5px 0',
									labelWidth : 120,
									defaults : {
										anchor : '80%',
										width : 300,
										msgTarget : 'side' // 验证信息显示右边
									},
									defaultType : 'textfield',
									items : [{
												xtype : 'combo',
												fieldLabel : '<span style="color: red">*&nbsp;</span>考核年度',
												hiddenName : 'year',
												valueField : 'value',
												displayField : 'text',
												value : check_year,
												mode : 'local',
												store : ds_year_select,
												value : select_year,
												selectOnFocus : true,
												editable : false,
												allowBlank : false,
												typeAhead : true,
												readOnly : true,
												triggerAction : 'all',
												loadingText : '加载中...',
												emptyText : '请选择考核年度'
											},{
												xtype : 'hidden',
												name : 'categoryId'
											}, {
												id : 'combotree_orgchecksetting_query',
												xtype : 'combotree',
												fieldLabel : '指标目录',
												hiddenName : 'goalDetail.categoryId',
												selectNodeModel:'leaf', //只有选叶子时，才设置值  
												allowBlank : true,
												height : 120,
												tree : {
													xtype:'treepanel',
													rootVisible : false,
													autoScroll : true,
													firstLoad : true,
													loadingText : '加载中...',
													loader : new Ext.tree.TreeLoader(),
													root : new Ext.tree.AsyncTreeNode(),
													listeners : {
														'beforeload' : function(node) {
																var checkYear = select_year;
																var nodeId = Ext.num(node.id, null);
																if (Ext.isNumber(nodeId)) {
																	this.loader.dataUrl = '/supervise/biz/goalcategory/getChildrenById.action?checkYear='
																			+ checkYear + '&nodeId=' + node.id;
																} else {
																	this.loader.dataUrl = "/supervise/biz/goalcategory/getRoot.action?checkYear=" + checkYear;
																}
															}
														}
											    	},
											    	listeners:{  
											            beforeselect: function(comboxtree,newNode,oldNode){//选择树结点设值之前的事件  
										            },  
										            select: function(comboxtree,newNode,oldNode){//选择树结点设值之后的事件  
										            	var frm = Ext.getCmp("form_query_orgchecksetting").getForm();
														frm.findField('categoryId').setValue(newNode.id);
										            },  
										            afterchange: function(comboxtree,newNode,oldNode){//选择树结点设值之后，并当新值和旧值不相等时的事件  
										            }  
										     	}  
											}, new Ext.form.ComboBox({
														fieldLabel : '<span style="color: red">*&nbsp;</span>单位类型', // UI标签名称
														hiddenName : 'orgType',// 作为form提交时传送的参数
														allowBlank : false, // 是否允许为空
														mode : 'local', // 数据模式,local为本地模式
														readOnly : true, // 是否只读
														triggerAction : 'all', // 显示所有下列数.必须指定为'all'
														anchor : '90%',
														emptyText : '请单位类型',
														store : new Ext.data.SimpleStore({ // 填充的数据
															fields : ["retrunValue", "displayText"],
															data : [['unit', '垂直管理单位'], ['dept', '机关'], ['town', '乡镇'],
																	['project', '工业园区管委会和工程建设指挥部']]
														}),
														valueField : 'retrunValue', // 传送的值
														displayField : 'displayText',
														listeners : {
															'select' : function(combo, record, index) {
																var orgType = combo.getValue();
																try {
																	var queryOrg = Ext.getCmp('query_setting_orgId');
																	queryOrg.clearValue();
																	queryOrg.store.reload({
																				params : {
																					orgType : orgType
																				}
																			});
																} catch (ex) {
																	Ext.MessageBox.alert(ex);
																}
															}
														}
													}), {
												id : 'query_setting_orgId',
												xtype : 'combo',
												fieldLabel : '<span style="color: red">*&nbsp;</span>单位名称',
												hiddenName : 'orgId',
												valueField : 'id',
												displayField : 'name',
												mode : 'local',
												store : new Ext.data.Store({
															url : '/supervise/sys/org/findOrgByType.action',
															reader : new Ext.data.JsonReader({
																		root : 'root'
																	}, [{
																				name : 'id',
																				type : 'int'
																			}, {
																				name : 'name',
																				type : 'string'
																			}])
														}),
												selectOnFocus : true,
												editable : false,
												allowBlank : false,
												triggerAction : 'all',
												loadingText : '加载中...',
												emptyText : '请单位名称'
											}],
									buttonAlign : 'center',
									minButtonWidth : 60,
									buttons : [{
												text : '查询',
												handler : function(btn) {
													var frm = btn.ownerCt.ownerCt.getForm();
													var year = frm.findField('year').getValue();
													var orgId = frm.findField('orgId').getValue();
													var categoryId = frm.findField('categoryId').getValue();
													if (Ext.isEmpty(year) || Ext.isEmpty(orgId)) {
														Ext.MessageBox.alert("提示", "请选择输入所有查询条件！");
														return;
													}
													Ext.apply(ds_orgchecksetting.baseParams  ,{
															year : year,
																	categoryId : categoryId,
																	orgId : orgId
														});
													ds_orgchecksetting.load({
														params : {
															start : 0,
															limit : 20
														}
													});
													ds_orgchecksetting.load({
																params : {
																	start : 0,
																	limit : 20,
																	year : year,
																	categoryId : categoryId,
																	orgId : orgId
																}
															});
												}
											}, {
												text : '重置',
												handler : function() {
													this.ownerCt.ownerCt.getForm().reset();
													Ext.getCmp("combotree_orgchecksetting_query").setRawValue("");
												}
											}]
								})]
					}]
		});

var orgchecksetting_panel = new Ext.Panel({
			frame : false,
			region : 'center',
			labelWidth : 65,
			title : '被考核部门指标设置',
			labelPad : 45,
			buttonAlign : 'center',
			layout : 'border',
			items : [qpanel_orgchecksetting, grid_orgchecksetting]
		});

var p_orgchecksetting = {
	id : 'orgchecksetting-panel',
	border : false,
	layout : 'border',
	items : [orgchecksetting_panel]
};

var querypanel_goaldetail = new Ext.Panel({
	height : 150,
	region : "north",
	baseCls : "x-plain",
	style : "padding:5px",
	layout : "column",
	items : [{
				columnWidth : 0.6,
				layout : "form",
				frame : true,
				baseCls : 'x-plain',
				items : [new Ext.FormPanel({
							id : 'form_query_goal',
							labelAlign : 'right',
							border : false,
							baseCls : 'x-plain',
							bodyStyle : 'padding:5px 5px 0',
							defaults : {
								anchor : '90%',
								width : 240,
								msgTarget : 'side' // 验证信息显示右边
							},
							defaultType : 'textfield',
							items : [{
										xtype : 'combo',
										fieldLabel : '<span style="color: red">*&nbsp;</span>考核年度',
										hiddenName : 'year',
										valueField : 'value',
										displayField : 'text',
										value : check_year,
										mode : 'local',
										store : ds_year_select,
										value : select_year,
										selectOnFocus : true,
										editable : false,
										allowBlank : false,
										typeAhead : true,
										readOnly : true,
										triggerAction : 'all',
										loadingText : '加载中...',
										emptyText : '请选择考核年度',
										listeners : {
											'select' : function(combo, record, index) {
												select_year = combo.getValue();
//												var root = catTree.getRootNode();
//												root.reload();
											}
										}
									}, {
										xtype : 'hidden',
										name : 'categoryId'
									},{
										fieldLabel : '考核内容',
										name : 'content'
									}, {
										xtype : 'combo',
										fieldLabel : '考核责任单位',
										hiddenName : 'checkOrgId',
										valueField : 'id',
										displayField : 'name',
										mode : 'remote',
										store : ds_org_select,
										// anchor : '100%',
										selectOnFocus : true,
										editable : false,
										allowBlank : true,
										triggerAction : 'all',
										loadingText : '加载中...',
										emptyText : '请选择部门'
									}],
							buttonAlign : 'center',
							minButtonWidth : 60,
							buttons : [{
										text : '查询',
										handler : function(btn) {
											
											var items = btn.ownerCt.ownerCt.items;
											ds_goaldetail.load({
														params : {
															start : 0,
															limit : 20,
															year : items.get(0).getValue(),
															categoryId : items.get(1).getValue(),
															content : items.get(3).getValue(),
															checkOrgId : items.get(4).getValue()
														}
													});
										}
									}, {
										text : '重置',
										handler : function() {
											var frm = Ext.getCmp('form_query_goal').getForm();
											frm.reset();
										}
									}]
						})]
			}]
});


var window_query_goaldetail = new Ext.Window({
	title : '增加考核指标设置',
	width : 720,
	height : 560,
	resizable : false,
	autoHeight : false,
	modal : true,
	closeAction : 'hide',
	layout : 'form',
	listeners : {
		'hide' : function() {
			var grid = window_query_goaldetail.findByType('grid')[0];
			if(grid) { 
				grid.getStore().removeAll();
			} 
			var frm = window_query_goaldetail.findByType('form')[0].getForm();
			frm.findField('content').reset();
		}
	},
	items: [query_goaldetail,grid_query_goaldetail]
});

//var window_query_goalself = new Ext.Window({
//	title : '增加自荐指标',
//	width : 720,
//	height : 540,
//	resizable : false,
//	autoHeight : false,
//	modal : true,
//	closeAction : 'hide',
//	layout : 'form',
//	items: [grid_query_goalself]
//});